package com.skyd.core.android.game.crosswisewar;

import com.skyd.core.game.crosswisewar.ICooling;
import com.skyd.core.game.crosswisewar.IEntity;
import com.skyd.core.game.crosswisewar.IWarrior;

public abstract class Warrior extends Entity implements IWarrior {

	@Override
	public boolean move() {
//		if(getEncounterEntity()!=null&&!getIsCanMoveAttack())
//			return false;
		Warrior buffed = (Warrior)getBuffed();
		float pos = getPositionInScene().getX()+(buffed.getNation().getIsRighteous()?buffed.getSpeed()/30f:0-buffed.getSpeed()/30f);
//		for(IObj f:getParentScene().getChildrenList()){
//			if(f instanceof IEntity&& !f.equals(this)){
//				IEntity t = (IEntity)f;
//				if(hitTest(pos, getOccupyWidth(), t.getPositionInScene(), t.getOccupyWidth()))return false;
//			}
//		}
		getPositionInScene().setX(pos);
		return true;
	}	

	@Override
	protected void updateSelf() {
		super.updateSelf();
		
		IEntity[] target = getEncounterEntity();
		if(target==null||target.length==0)
		move();
		else{
			attack(target);
			if(getIsCanMoveAttack())move();
		}
	}

	/**
	 * 碰撞检测
	 * @param position1 在场景中的位置
	 * @param width1 宽度
	 * @param position2 在场景中的位置
	 * @param width2 宽度
	 * @return 是否碰撞
	 */
	public static boolean hitTest(float position1,int width1,float position2,int width2){
		return Math.abs(position1-position2)<=Math.max(width1, width2);
	}

	@Override
	public ICooling getCooling(){
		return CoolingMaster.getCooling(this.getClass());
	}
	
	/**
	 * 初始值为1。 功能注释：速度
	 */
	private int _Speed = 1;

	/**
	 * 获取Speed。 功能注释：速度
	 * 
	 * @return 当前的int类型的值
	 */
	public int getSpeed() {
		return _Speed;
	}

	/**
	 * 设置Speed。 功能注释：速度
	 * 
	 * @param value
	 *            要设置的int类型值
	 */
	public void setSpeed(int value) {
		_Speed = value;
	}

	/**
	 * 设置Speed为其默认值(1)。 功能注释：速度
	 */
	public void setSpeedToDefault() {
		setSpeed(1);
	}

}
